﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DADOS.esf;
using DADOS.auxiliares;
using DADOS.unidade;
using DADOS.usuario;

namespace PROAD.admin.Forms
{
    public partial class FormEsf : System.Web.UI.Page
    {
        
        metEsf metEquipe = new metEsf();
        metProfissional metAuxProf = new metProfissional();
        metEndereco metAuxEnd = new metEndereco();
        metUnidade metUni = new metUnidade();

        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                CarregarDDl();
                if(Request.QueryString["cod"] != null)
                {
                    hdfCodEs.Value = Request.QueryString["cod"].ToString();
                    CarregarForm(Convert.ToInt32(hdfCodEs.Value));

                    btnEditar.Visible = true;
                    btnSalvar.Visible = false;

                }else
                {
                    btnEditar.Visible = false;
                    btnSalvar.Visible = true;
                    ddlUS.Enabled = false;
                }
            }
        }

        protected void CarregarDDl()
        {
            //UF
            ddlUf.DataSource = metAuxEnd.ListaUF();
            ddlUf.DataBind();
            ddlUf.Items.Insert(0, new ListItem("Selecione UF", "0"));

            //SUS
            ddlSus.DataSource = metAuxProf.ListarAtencaoSUS();
            ddlSus.DataBind();
            ddlSus.Items.Insert(0, new ListItem("Nível SUS", "0"));
        }

        protected void CarregarDdlUS(int intCodUf)
        {
            //US
            ddlUS.Enabled = true;
            ddlUS.DataSource = metEquipe.ListaUsUf(intCodUf);
            ddlUS.DataBind();
            ddlUS.Items.Insert(0, new ListItem("Selecione US", "0"));

        }

        protected void CarregarForm(int intCodEs)
        {
            var objEs = metEquipe.Selecionar(intCodEs);
            txtEs.Text = objEs.NO_ES;
            txtArea.Text = objEs.DS_AREA;
            ddlStatus.SelectedValue = objEs.NR_STATUS.ToString();
            ddlSus.SelectedValue = objEs.CO_ATENCAO_SUS.ToString();
            var objUnidade = metUni.Selecionar(objEs.CO_US);
            ddlUf.SelectedValue = objUnidade.CO_UF.ToString();
            CarregarDdlUS(objUnidade.CO_UF);
            ddlUS.SelectedValue = objEs.CO_US.ToString();
        }

        protected DADOS.TB_ES CarregarObjeto()
        {
            var objEs = new DADOS.TB_ES();

            objEs.NO_ES = txtEs.Text;
            objEs.DS_AREA = txtArea.Text;
            objEs.NR_STATUS = Convert.ToInt32(ddlStatus.SelectedValue);
            objEs.CO_ATENCAO_SUS = Convert.ToInt32(ddlSus.SelectedValue);
            objEs.CO_US = Convert.ToInt32(ddlUS.SelectedValue);
            objEs.CO_PROFISSICIONAL = Convert.ToInt32(Session["CO_PROFISSIONAL"].ToString());

            return objEs;
        }

        protected void btnEditar_Click(object sender, EventArgs e)
        {
            if (ValidarForm())
            {
                var objEs = CarregarObjeto();
                objEs.CO_ES = Convert.ToInt32(hdfCodEs.Value);
                metEquipe.Alterar(objEs);
                Response.Redirect("/admin/consulta/ConsultaListaEsf.aspx?msn=2");
            }
            else
            {
                ModalPopupMsn.Show();
            }
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            if (ValidarForm())
            {
                var objEs = CarregarObjeto();
                metEquipe.Incluir(objEs);
                Response.Redirect("/admin/consulta/ConsultaListaEsf.aspx?msn=1");
            }
            else
            {
                ModalPopupMsn.Show();
            }
        }

        private Boolean ValidarForm()
        {

            if (txtEs.Text.Length < 4)
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Campo Equipe de Saúde obrigatório!";
                txtEs.Focus();
                return false;
            }

            if (txtArea.Text.Length < 4)
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Campo Área obrigatório!";
                txtArea.Focus();
                return false;
            }
            
            if (ddlStatus.SelectedValue == "")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione um status!";
                ddlStatus.Focus();
                return false;
            }

            if (ddlSus.SelectedValue == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione um nível de atenção!";
                ddlStatus.Focus();
                return false;
            }

            if (ddlUf.SelectedValue == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma UF!";
                ddlUf.Focus();
                return false;
            }

            if (ddlUS.SelectedValue == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma US!";
                ddlUS.Focus();
                return false;
            }


            return true;
        }

        protected void ddlUf_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(ddlUf.SelectedValue != "0")
            {
                CarregarDdlUS(Convert.ToInt32(ddlUf.SelectedValue));
            }else
            {
                ddlUS.SelectedValue = "0";
                ddlUS.Enabled = false;
            }
        }
    }
}